1. Field of the Invention
The present invention relates to disk array storage systems and more specifically relates to methods and structure for enabling RAID management level migration with a logical unit of a disk array storage system.
2. Discussion of Related Art
Modern mass storage subsystems are continuing to provide increasing storage capacities to fulfill user demands from host computer system applications. Due to this critical reliance on large capacity mass storage, demands for enhanced reliability are also high. Various storage device configurations and geometries are commonly applied to meet the demands for higher storage capacity while maintaining or enhancing reliability of the mass storage subsystems.
A popular solution to these mass storage demands for increased capacity and reliability is the use of multiple smaller storage modules configured in geometries that permit redundancy of stored data to assure data integrity in case of various failures. In many such redundant subsystems, recovery from many common failures is automated within the storage subsystem itself due to the use of data redundancy, error codes, and so-called "hot spares" (extra storage modules that may be activated to replace a failed, previously active storage module). These subsystems are typically referred to as redundant arrays of inexpensive (or independent) disks (or more commonly by the acronym RAID). The 1987 publication by David A. Patterson, et al., from University of California at Berkeley entitled A Case for Redundant Arrays of Inexpensive Disks (RAID), reviews the fundamental concepts of RAID technology.
There are six common "levels" of standard geometries generally known in present storage systems. The simplest array that provides a form of redundancy, a RAID level 1 system, comprises one or more disks for storing data and an equal number of additional mirror disks for storing copies of the information written to the data disks. The remaining RAID levels, identified as RAID level 2-6 systems, segment the data into portions for storage across several data disks. One of more additional disks are utilized to store error check or parity information. Striping is a technique of distributing the data (and redundancy information) over a plurality of drives in the storage system. This technique improves overall performance by using concurrency to reduce the wait time involved in larger I/O operations. Rather than waiting for a single disk drive to respond to a larger I/O request, several drives are involved in concurrent processing of the I/O request. Some of the RAID management levels (i.e., RAID level 5) include striping as an integral part of the management technique. RAID level 1 may optionally include striping to improve its performance as compared to non-striped mirrored implementations. Some in the industry refer to RAID level 1 with striping as RAID level 10.
RAID storage subsystems typically utilize a control module that shields the user or host system from the details of managing the redundant array. The controller makes the subsystem appear to the host computer as a single, highly reliable, high capacity disk drive. In fact, the RAID controller may distribute the host computer system supplied data across a plurality of the small independent drives with redundancy and error checking information so as to improve subsystem reliability. Frequently RAID subsystems provide large cache memory structures to further improve the performance of the RAID subsystem. The cache memory is associated with the control module such that the storage blocks on the disk array are mapped to blocks in the cache. This mapping is also transparent to the host system. The host system simply requests blocks of data to be read or written and the RAID controller manipulates the disk array and cache memory as required.
The various RAID levels are distinguished, in part, by their relative performance capabilities as well as their overhead storage requirements. For example as regards overhead storage capacity, a RAID level 1 "mirrored" storage system requires more overhead storage than, for example, a system using RAID levels 2-5 that utilize XOR parity to provide requisite redundancy. RAID level 1 requires as much storage capacity for redundancy information (duplicated copies of all data) as for the actual stored data. By contrast, RAID level 5 requires 1/N of the storage capacity used for storing data where N is the number of data disk drives used in the particular RAID storage system.
RAID management levels also differ in their performance characteristics. RAID level 5, for example, is known to impose a performance penalty on write operations. The redundancy information maintained by RAID level 5 management forces an update to parity information even when a relatively small amount of user data is updated. To update the parity requires reading other portions of the data unaffected by the particular write operation and then requires an extra write operation to actually update the parity data. By contrast, mirrored RAID level 1 management techniques impose no such penalty. The updated data and redundancy (mirrored) data are simply written in parallel.
A number of partial solutions are known in the art to reduce the impact of this well known write penalty. However, the penalty cannot be eliminated in all environments.
In view of these overhead and performance distinctions, it is desirable to tune a storage subsystem's use of RAID management techniques to a particular application. In some applications it may be preferred the improved performance of RAID level 1 be used for high performance at a cost of additional overhead storage requirements. In other applications, the write penalty of RAID level 5 management may be acceptable in exchange for the reduced overhead storage requirements.
AutoRAID systems available from Hewlett-Packard Company utilize management techniques that attempt to automatically manage the use of, for example, RAID level 1 and RAID level 5. These AutoRAID management techniques maintain at least two portions to a storage subsystem. A first portion is maintained in accordance with RAID level 1 management techniques to maximize performance. A second portion is maintained in accordance with RAID level 5 management techniques to reduce storage overhead requirements. Data that is being frequently accessed is automatically "migrated" from the slower RAID level 5 portion to the faster RAID level 1 portion to improve overall system performance. Data that is moved from the RAID level 5 portion to the RAID level 1 portion is said to be "promoted" because the data is promoted from a lower performance RAID configuration to a higher performance RAID configuration. Conversely, the opposite conversion is referred to as "demotion" because the data is "demoted" from a higher performance RAID configuration to a lower performance configuration.
In general, storage systems in which multiple RAID management techniques are used to map and relocate data as needed for optimal space utilization or for performance are referred to as hierarchical. Hierarchical storage systems define a hierarchy of storage areas or media such that higher levels of the hierarchy are distinguished from lower levels of the hierarchy based upon various performance or other measurable characteristics. As noted above with respect to HP AutoRAID, data is managed within such hierarchical storage systems to provide a preferred level of performance or other characteristic for the data.
Presently known RAID storage subsystems manage data in the storage subsystem in units referred to as logical units or LUNs. A particular LUN is a subset of the storage space within the storage subsystem. As presently known in the art, a storage controller applies a particular RAID management geometry and technique to the data stored in that LUN. The Hewlett-Packard AutoRAID solutions utilize relatively complex log structure file system techniques to map all data in a particular logical unit (LUN) of the storage subsystem. In general, meta-data structures are utilized in managing log structure file system to map each block of data in the LUN. Data is exchanged between the portions of the storage subsystem in concert with the complex log structure file system (LFS) techniques. The log structure mapping information is used to locate each block in one of the two portions of the storage subsystem.
The meta-data structures associated with the log structure file system are usually manipulated as dynamic memory data structures. Such dynamic data structures are allocated or created and de-allocated or destroyed as required in manipulation of the log structure. Dynamic manipulation of such data structures comprises a significant degree of overhead processing in addition to the overhead storage requirements of the log structure meta-data structures. Dynamic memory management techniques usually involve processing to allocate, de-allocate and compact (i.e., garbage collection). The log structure file system associated with the Hewlett-Packard AutoRAID systems is therefore costly as measured in overhead storage requirements for the log related meta-data structures. The LFS technique is also complex and costly in performance due processing of the log related meta-data structures that must be accessed for each data block manipulated on the user's behalf.
Presently known hierarchical storage systems are therefore complex and hence costly. It is desirable to reduce the complexity of providing such hierarchical RAID level migration capability in hierarchical storage systems.